<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //  JS基本数据类型
    //  string number  boolean  null undefined           object(array)


    // 隐式类型转换
    // 关系运算符的隐式类型转换  (> >=  < <=  ==  !=   注意: === !== 一般不会参数隐式类转换)
    // (1) 字符串,布尔值和数字比较时,会先隐式转化为数字,在参数比较
    // (2) 字符串 和 字符串 比较时, 依次比较字符对应的ASCII码(unicode码)  => 第一个字符不同就比较第一个,第一个相同就比第二个

    // (3) null 和 undefined 遇到 > >= < <= 时,  会先隐式转化为数字,在参数比较
    //     null 和 undefined 遇到 ==  != 时,  不会转化而是直接比较(没有可比性)

    // (4) null 和 undefined 在数值上是相同的(官方规定)

    // (5) NaN和其他数据没有可比性, 和任何值比较都是false  => NaN != NaN



    // console.log("10" > 3); // true
    // console.log("2" > 3);  // false
    // console.log(1 == true);   // true 转数字 1  => 1 == 1  true
    // console.log(2 == true);   // true 转数字 1  => 2 == 1  false


    // console.log("5" > "3"); // "5" 对应 53  "3" 对应 51  =>  53 > 51  => true
    // console.log("15" > "3"); // "1" 对应 49   "3" 对应 51  =>  49 > 51  => false
    // console.log("15" > "13"); // "5" 对应  53  "3" 对应 51  =>  53 > 51  => true
    // console.log("1" > "13"); //  如果是"" 默认是最小的  => false

    // console.log(null >= 0);  // null 转为 0   0 >= 0 =>   true   
    // console.log(undefined >= 0);  // undefined 转为 NaN   NaN >= 0  false   
    // console.log(null == 0);  // null 没有隐式转化为数字, 没有可比性 false
    // console.log(undefined == 0);  // null 没有隐式转化为数字, 没有可比性 false

    // var a = null; 
    // var b ; // undefined
    // console.log(a == b);  // true
    // console.log(null == undefined);  // true

    // console.log( NaN > 3)
    // console.log( NaN < 3)
    // console.log( NaN == 3)
    // console.log( NaN == NaN)



</script>
</html>